import max from "./max.js";
import silhouette from "./silhouette.js";

/**
 * 计算一组N维点的[轮廓系数](https://en.wikipedia.org/wiki/Silhouette_(clustering))。
 * 该指标是数据中最大的单个轮廓值。
 *
 * @param {Array<Array<number>>} points N维点的坐标。
 * @param {Array<number>} labels 点的标签。其长度必须与`points`相同，
 * 并且值必须在[0..G-1]范围内，其中G是组的数量。
 * @return {number} 分组的轮廓系数。
 *
 * @example
 * silhouetteMetric([[0.25], [0.75]], [0, 0]); // => 1.0
 */
function silhouetteMetric(points, labels) {
    const values = silhouette(points, labels);
    return max(values);
}

export default silhouetteMetric;
